iT邦幫忙

2023 iThome 鐵人賽

DAY 10
0

Nullable 和 Non-Null

  1. 可為空(Nullable)型別:

可為空型別允許變數儲存非空值或 null。要聲明可為空型別,可以在型別名稱後面添加 ? 符號。

val name: String? = null // 可為空的字串變數
  1. 非空(Non-Null)型別:

非空型別表示變數必須始終包含非空值,不允許儲存 null。在 Kotlin 中,大多數變數默認是非空型別。如果希望明確聲明一個變數為非空型別,只需省略 ? 符號。

val age: Int = 30 // 非空的整數變數

如果嘗試將 null 賦值給非空型別的變數,編譯器將發出錯誤。

// 可為空型別
val name: String? = null
val length: Int? = name?.length // 使用安全調用運算符

// 非空型別
val age: Int = 30
val userName: String = "Alice"
val nameLength: Int = userName.length
val b: String? = "hahaha"
println(b.length) // <-- 編譯失敗

可為空(Nullable)型別在被存取時會有風險,立即被編譯器發現而編譯失敗,我們必須檢查該變數的值是否為 null,編譯器才能讓我們繼續。

val b: String? = "hahaha"
if (b != null) {
  println(b.length)<-- 編譯成功
}

上一篇
Day 9 資料型別(3)
下一篇
Day 11 =,=
系列文
我與Kotlin的愛恨情仇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言